import {
    insert,
    getById
} from '../../api/api'

Page({

    /**
     * 页面的初始数据
     */
    data: {

        amount: '',
        carNo: '',
        startTime: "",
        endTime: '',
        hours: '',
        detailsInfo: {},

    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
         getById({id:options.id}).then((res)=>{
            this.setData({
                detailsInfo:res.data || {}
            })
        })
    },

    //立即预约
    Confirm() {
        let {
            startTime,
            endTime,
            hours,
            carNo,
            amount,
            detailsInfo
        } = this.data
        let userinfo = wx.getStorageSync('USERINFOKEY') 
        if(userinfo){
            userinfo = JSON.parse(userinfo)
        }
        if (!carNo) {
            return wx.showToast({
                title: '请输入车牌号',
                icon: 'none'
            })
        }
        if(hours == 0){
            return wx.showToast({
                title: '停车时长不能小于0',
                icon: 'none'
            })
        }
        wx.showModal({
            title: '提示',
            content: '是否确认预约当前停车场车位？',
            success(res) {
                if (res.confirm) {
                   
                    let spaceId = detailsInfo.id
                    startTime = startTime.replace(/\//g, "-")
                    endTime = endTime.replace(/\//g, "-")//ios不支持- 传递时转换回来
                    insert({
                        userId: String(userinfo.userId), 
                        spaceId: String(spaceId), 
                        startTime,
                        endTime,
                        hours:String(hours),
                        carNo,
                        amount
                    }).then(res => {
                        if(res.result == '1'){
                            wx.showToast({
                                title: '预约成功',
                                icon: 'none'
                            }) 
                            setTimeout(() => {
                                wx.navigateBack()
                            }, 1000);
                        }else{
                            
                        }
                    })
                } else if (res.cancel) {
                    console.log('用户点击取消')
                }
            }
        })



    },

   
    //前往登录
    register() {
        wx.redirectTo({
            url: '/pages/register/register'
        })
    },
    //计算时间差
    getTimeDifference(startDateString, endDateString) {
        const start = new Date(startDateString); // 将起始日期字符串转换为Date对象
        const end = new Date(endDateString); // 将结束日期字符串转换为Date对象

        const timeDiffInMs = Math.abs(end - start); // 获取两个日期之间的毫秒数差值（正向或反向都会得到同样的结果）

        const diffDays = Math.floor(timeDiffInMs / (1000 * 3600 * 24)); // 计算天数差值
        const diffHours = Math.floor((timeDiffInMs % (1000 * 3600 * 24)) / (1000 * 3600)); // 计算小时数差值
        const diffMinutes = Math.floor((timeDiffInMs % (1000 * 3600)) / (1000 * 60)); // 计算分钟数差值
        let Hours = diffHours
        if(diffDays > 0){
            Hours = Hours +  (diffDays*24)
        }
        if(diffMinutes > 30){
            Hours = Hours + 1
        }
        //计算相差秒数
        // var leave3 = diffMinutes % (60 * 1000); //计算分钟数后剩余的毫秒数
        // var seconds = Math.round(leave3 / 1000);
        this.setData({
            amount:this.data.detailsInfo.amount * Hours
        })
        return Hours //` ${diffDays} 天 ${diffHours} 小时 ${diffMinutes} 分钟`;
    },


    //预约开始时间
    changeDateTimeStart(ev) {
        let hours = this.getTimeDifference(ev.detail.dateTime, this.data.endTime)
        this.setData({
            startTime: ev.detail.dateTime,
            hours
        })

        console.log(ev);
    },
    //预约结束时间
    changeDateTimeEnd(ev) {
        let hours = this.getTimeDifference(this.data.startTime, ev.detail.dateTime)

        this.setData({
            endTime: ev.detail.dateTime,
            hours
        })
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        this.selectComponent('#dateTimeStart').setDateTime();
        this.selectComponent('#dateTimeEnd').setDateTime();
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})